#ifndef LENGTHUNIT_H
#define LENGTHUNIT_H

#include <Unit.h>
#include <string>


struct LengthUnit:Unit
{

  /* OVERRIDE */ const Unit& getBaseUnit() const;

  static const LengthUnit& Mile();
  static const LengthUnit& Yard();
  static const LengthUnit& Feet();

protected:  
  /* OVERRIDE */ const std::string getUnitString() const;
  /* OVERRIDE */ std::string printEveryUnit(const PrintFormat& format , int amountLeftInBaseUnit) const;
private:
  explicit LengthUnit(const int factorOfBaseUnit);
  
  
};


#define MILE  LengthUnit::Mile()
#define YARD  LengthUnit::Yard()
#define FEET  LengthUnit::Feet()


#endif
